window.onload = function() {
    var regtel = /^1[3|4|5|7|8]\d{9}$/; // 手机号码的正则表达式
    // var regqq = /^[1-9]\d{4,}$/; // 10000
    // var regnc = /^[\u4e00-\u9fa5]{2,8}$/;
    var regnc = /^[a-zA-Z0-9]{2,8}$/;
    // var regmsg = /^\d{6}$/;
    var regmsg = /^\d{4}$/;
    var regpwd = /^[a-zA-Z0-9_-]{6,16}$/;
    var tel = document.querySelector('#tel');
    // var qq = document.querySelector('#qq');
    var nc = document.querySelector('#nc');
    var msg = document.querySelector('#msg');
    var pwd = document.querySelector('#pwd');
    var surepwd = document.querySelector('#surepwd');
    regexp(tel, regtel); // 手机号码
    // regexp(qq, regqq); // qq号码
    regexp(nc, regnc); // 昵称
    regexp(msg, regmsg); // 短信验证
    regexp(pwd, regpwd); // 密码框
    // 表单验证的函数
    function regexp(ele, reg) {
        ele.onblur = function() {
            if (reg.test(this.value)) {
                // console.log('正确的');
                this.nextElementSibling.className = 'success';
                this.nextElementSibling.innerHTML = '<i class="success_icon"></i> 恭喜您输入正确';
            } else {
                // console.log('不正确');
                this.nextElementSibling.className = 'error';
                this.nextElementSibling.innerHTML = '<i class="error_icon"></i> 格式不正确，请从新输入 ';
            }
            // 编写手机号验证通过时显示发送验证码按钮
            // console.log($(this).attr('id'));
            if ($(this).attr('id') == 'tel') {
                // 证明是手机号
                if (reg.test(this.value)) {
                    // console.log('正确的');
                    // 校验通过则显示发送验证码按钮
                    $("input.over2").show();
                } else {
                    // console.log('不正确');
                    // 校验通过则隐藏发送验证码按钮
                    $("input.over2").hide();
                }
            }
        }
    };

    surepwd.onblur = function() {
        if (this.value == pwd.value) {
            this.nextElementSibling.className = 'success';
            this.nextElementSibling.innerHTML = '<i class="success_icon"></i> 恭喜您输入正确';
        } else {
            this.nextElementSibling.className = 'error';
            this.nextElementSibling.innerHTML = '<i class="error_icon"></i> 两次密码输入不一致';

        }
    }

    // 给注册表单绑定提交事件
    $("#registerForm").submit(() => {
        let agree = $("#agree").prop("checked");
        if (!agree) {
            // 不同意协议
            alert('您未同意协议，无法注册');
            return false;
        }
        // 获取参数
        let username = $("#nc").val().trim();
        let password = $("#pwd").val().trim();
        let phone = $("#tel").val().trim();
        let code = $("#msg").val().trim();
        let uuid = $("#uuid").val().trim();
        console.log(username, password, phone, code, uuid);
        $.post("/api/user/register", {
            username,
            password: md5(password),
            phone, code, uuid
        }, ret => {
            console.log(ret);
            alert(ret['msg']);
            if (ret['code'] == 200) {
                window.location.href = '/login.html';
            }
        }, "json");
        return false;
    });

    // 给发送验证码按钮绑定事件
    $(".over2").click(() => {
        console.log("发送验证码");
        $.getJSON("/api/vc/sendCode?phone=" + $("#tel").val().trim(), ret => {
            console.log(ret);
            // 给隐藏域设置uuid，将来需要带回后端校验
            $("#uuid").val(ret['data']['uuid']);
            // 短信验证码发送成功，显示倒计时，并且按钮禁用
            if (ret['code'] == 200) {
                // 发送成功
                // 发送验证码按钮需要禁用
                $(".over2").attr("disabled","disabled");
                let timeout = 300;
                // 定义一个函数执行倒计时
                let myFun = () => {
                    $(".over2").val('倒计时' + timeout + "秒");
                    if (timeout <= 0) {
                        // 重新设置成300
                        timeout = 300;
                        // 将按钮禁用取消
                        $(".over2").removeAttr("disabled");
                        // 将按钮文字恢复成发送验证码
                        $(".over2").val('发送验证码');
                        // 清除定时器
                        clearInterval(timerId);
                    } else {
                        timeout--;
                    }
                };
                myFun();
                let timerId = setInterval(myFun, 1000);
            }
        });
    });
}